package com.bblocks.message.service;

import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.image.model.ImageUploadResult;
import com.bblocks.message.api.common.model.RegisterInfo;
import com.bblocks.message.api.group.GroupInfoResult;
import com.bblocks.message.api.group.MemberResult;
import com.bblocks.message.api.resource.UploadResult;
import com.bblocks.message.api.user.UserInfoResult;

import java.util.List;

/**
 * @description:
 * @author: xingdong
 * @time: 2020/6/20 下午4:39
 */
public interface ImUserService {

    /**
     * 注册用户
     */
    String registerUsers(List<RegisterInfo.Builder> users);

    /**
     * 上传文件
     */
    UploadResult uploadFileForIm(String path, String fileType);
    
    void deleteUser(String username);
    
    /**
     * false 不存在   true  存在
     * @param usernames
     * @return
     */
    boolean isExistUser(String[] usernames);

    boolean isExistUser(String username);
    
    UserInfoResult getUserInfo(String username);

	ImageUploadResult uploadImageByUrl(String url) throws APIConnectionException, APIRequestException;


    /**
     * 1 - 私有群（默认）
     * 2 - 公开群
     * @param owner 群主
     * @param gname
     * @param desc
     * @param avatar
     * @param flag  1 - 私有群（默认） 2 - 公开群
     * @return
     */
    String createGroup(String owner, String gname, String desc,  String avatar,int flag);

    void joinGroup(String groupNo,List<String> userNos);

    void quitGroup(String groupNo,List<String> userNos);

    GroupInfoResult groupInfo(String groupNo );

    MemberResult[] groupUserList(String groupNo);

    GroupInfoResult[] userGroupList(String userNo);

}
